/**
* 观众加入agora直播频道
 *
* @param appId agora平台的应用id
* @param channelName agora平台的channelName
* @param token agora平台的观众权限token
* @param uid 观众的uid，默认传 0
* @return 原生回调js方法 joinAgoraLiveBack(String status) //status：0 加入频道失败 1 加入频道成功
 */
export const joinAgoraLive = {
  ios: 'joinAgoraLive',
  android: 'joinAgoraLive',

  params: {
    appId: '',
    channelName: '',
    token: '',
    uid: 0
  },

  paramsHandler (params) {
    if (this._os === 'android') {
      return [params.appId, params.channelName, params.token, params.uid]
    } else if (this._os === 'ios') {
      return [params]
    }
  },

  callback: {
    name: 'joinAgoraLiveBack',
    handler (option, status) {
      console.log('joinAgoraLiveBack status:', status, option)
      return {
        status
      }
    }
  }
}

/**
   * 功能： 离开agora直播频道
   */
export const leaveAgoraLive = {
  ios: 'leaveAgoraLive',
  android: 'leaveAgoraLive',

  params: {},

  paramsHandler (params) {
    if (this._os === 'android') {
      return []
    } else if (this._os === 'ios') {
      return [params]
    }
  }

}

/**
* 功能：显示或隐藏agora直播窗口
* @param show 1：显示 2：隐藏
*/
export const showOrHideAgoraLive = {
  ios: 'showOrHideAgoraLive',
  android: 'showOrHideAgoraLive',

  params: {
    show: '1'
  },

  paramsHandler (params) {
    if (this._os === 'android') {
      return [params.show]
    } else if (this._os === 'ios') {
      return [params]
    }
  }
}

/**
* 邀请以主播身份加入agora直播频道
*
* @param appId agora平台的应用id
* @param channelName agora平台的channelName
* @param token agora平台的主播权限token
* @param uid 主播对应的uid，邀请学生连麦默认传 9
* @param inviteName 邀请者姓名
* @param inviteHeadUrl 邀请者头像url
* @return 原生回调js方法 inviteAgoraLiveAnchorBack(String status) //status：0 连麦窗口显示 1 接受连麦 2 拒绝连麦 3 连麦成功 4 连麦失败
*/
export const inviteAgoraLiveAnchor = {
  ios: 'inviteAgoraLiveAnchor',
  android: 'inviteAgoraLiveAnchor',

  params: {
    appId: '',
    channelName: '',
    token: '',
    uid: 9,
    inviteName: '',
    inviteHeadUrl: ''
  },

  paramsHandler (params) {
    if (this._os === 'android') {
      return [params.appId, params.channelName, params.token, params.uid, params.inviteName, params.inviteHeadUrl]
    } else if (this._os === 'ios') {
      return [params]
    }
  }

  // callback: {
  //   name: 'inviteAgoraLiveAnchorBack',
  //   handler(option, status) {
  //     console.log('inviteAgoraLiveAnchorBack status:', status, option)
  //     return {
  //       status
  //     }
  //   }
  // }
}

/**
  * 关闭主播连麦
  *
  * @param uid 主播对应的uid，关闭学生连麦默认传 9
  * @return 老师主动结束连麦或者学生自己结束连麦，原生回调js方法closeAgoraLiveAnchorBack(String action) //action：1 老师结束 2 学生自己结束
  */
export const closeAgoraLiveAnchor = {
  ios: 'closeAgoraLiveAnchor',
  android: 'closeAgoraLiveAnchor',

  params: {
    uid: 9
  },

  paramsHandler (params) {
    if (this._os === 'android') {
      return [params.uid]
    } else if (this._os === 'ios') {
      return [params]
    }
  }

  // callback: {
  //   name: 'closeAgoraLiveAnchorBack',
  //   handler(option, status) {
  //     console.log('closeAgoraLiveAnchorBack status:', status, option)
  //     return {
  //       status
  //     }
  //   }
  // }
}

/**
* 第三者显示连麦学生窗口
*
* @param uid 主播对应的uid，学生连麦默认传 9
* @param anchorName 主播姓名
*/
export const showAgoraLiveAnchor = {
  ios: 'showAgoraLiveAnchor',
  android: 'showAgoraLiveAnchor',

  params: {
    uid: 9,
    anchorName: ''
  },

  paramsHandler (params) {
    if (this._os === 'android') {
      return [params.uid, params.anchorName]
    } else if (this._os === 'ios') {
      return [params]
    }
  }
}
